//管理游戏地面瓦片的类
#pragma once
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <vector>

#include "GroundTile.h"
class Ground {
public:
    // 瓦片包括左，右，中，空
	Ground(SDL_Texture* left, SDL_Texture* center, SDL_Texture* right, SDL_Texture* hole);
    //获取指定索引的瓦片
	GroundTile& getTile(int p_index);
    //获取指定索引瓦片的状态
	int getStatus(int p_index);
    //获取地面瓦片的数量
	int getLength();
    // 检查player是否在某个地面瓦片的下方
	bool isTileBelow(float x, int width);
    // 根据分数更新地面瓦片的状态,并根据分数随机创造空洞
	void update(int score);
    // 重置地面瓦片到初始状态
	void reset();
private:
   // 存储地面瓦片的动态数组
	std::vector<GroundTile> groundTiles;
     // 存储四种地面瓦片纹理的数组
	SDL_Texture* groundTex[4];// 分别是左、中、右、空
     // 上一个瓦片的状态（可能用于决定下一个瓦片的状态）
	int lastStatus = 1;//1代表
    //空洞的数量
	int holeCount = 0;
};